home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / POVSRC / SOURCE / Stdio_p2w.h < prev    next >
Text File  |  1994-02-04  |  4KB  |  111 lines

  1. /*
  2. ==============================================================================
  3. Project:    POV-Ray
  4.  
  5. Version:    2.2
  6.  
  7. File Name:    Stdio_p2w.h
  8.  
  9. Description:
  10.     General-purpose printf-capturing routines that allow a console-like
  11.     output window for c programs that otherwise prefer to use printf/fprintf.
  12.     This code was "inspired heavily" from sources such as MacDTS'es TESample,
  13.     MacApp's Transcript window, and previous code of mine.  It is fairly well
  14.     self-contained, and works in MPW C 3.2 and Think C 5.0.
  15.  
  16.     This file contains global definitions used by any source files that would
  17.     otherwise include <stdio.h>.. that is, non-Macintosh-toolbox-aware.  It is
  18.     _REQUIRED_ that those files be modified to include "stdio_p2w.h" instead of
  19.     <stdio.h>, since this header will include <stdio.h> for them.
  20.     NOTE: If stdio.h is included after this header, problems will occur.
  21.  
  22. Related Files:
  23.     Stdio_p2w.h        - generic header for sources that would otherwise use <stdio.h>
  24.     Printf2Window.h    - Mac-specific header for p2w routines
  25.     Printf2Window.c    - the main source for the p2w routines
  26. ------------------------------------------------------------------------------
  27. Author:
  28.     Eduard [esp] Schwan
  29. ------------------------------------------------------------------------------
  30.     from Persistence of Vision Raytracer
  31.     Copyright 1993 Persistence of Vision Team
  32. ------------------------------------------------------------------------------
  33.     NOTICE: This source code file is provided so that users may experiment
  34.     with enhancements to POV-Ray and to port the software to platforms other 
  35.     than those supported by the POV-Ray Team.  There are strict rules under
  36.     which you are permitted to use this file.  The rules are in the file
  37.     named POVLEGAL.DOC which should be distributed with this file. If 
  38.     POVLEGAL.DOC is not available or for more info please contact the POV-Ray
  39.     Team Coordinator by leaving a message in CompuServe's Graphics Developer's
  40.     Forum.  The latest version of POV-Ray may be found there as well.
  41.  
  42.     This program is based on the popular DKB raytracer version 2.12.
  43.     DKBTrace was originally written by David K. Buck.
  44.     DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
  45. ------------------------------------------------------------------------------
  46. More Info:
  47.     This Macintosh version of POV-Ray was created and compiled by Jim Nitchals
  48.     (Think 5.0) and Eduard Schwan (MPW 3.2), based (loosely) on the original
  49.     port by Thomas Okken and David Lichtman, with some help from Glenn Sugden.
  50.  
  51.     For bug reports regarding the Macintosh version, you should contact:
  52.     Eduard [esp] Schwan
  53.         CompuServe: 71513,2161
  54.         Internet: jl.tech@applelink.apple.com
  55.         AppleLink: jl.tech
  56.     Jim Nitchals
  57.         Compuserve: 73117,3020
  58.         America Online: JIMN8
  59.         Internet: jimn8@aol.com -or- jimn8@applelink.apple.com
  60.         AppleLink: JIMN8
  61. ------------------------------------------------------------------------------
  62. Change History:
  63.     920326    [esp]    Created.
  64.     920330    [esp]    Updated file header with copyright & related files info
  65.     920424  (jln)   removed putc definition to avoid problems writing Targa format.
  66.     920621    [esp]    Changed file header definition to STDIOP2W_H for ANSI consistency
  67.     931001    [esp]    version 2.0 finished (Released on 10/4/93)
  68. ==============================================================================
  69. */
  70.  
  71. #if !defined (STDIOP2W_H)
  72. #define STDIOP2W_H
  73.  
  74.  
  75. #include <stdio.h>
  76.  
  77.  
  78. // ==== <stdio.h> replacement macros (Forces std C i/o to call us instead)
  79.  
  80. #undef    fflush
  81. #undef    fprintf
  82. #undef    fputc
  83. #undef    fputs
  84. #undef    printf
  85. // #undef    putc    -- let it pass for now [esp]
  86. #undef    putchar
  87. #undef    puts
  88.  
  89. #define fflush        p2w_fflush
  90. #define fprintf        p2w_fprintf
  91. #define fputc        p2w_fputc
  92. #define fputs        p2w_fputs
  93. #define printf        p2w_printf
  94. // #define putc        p2w_putc  -yeah right! not until we get pass-thru to system for non-console.
  95. #define putchar        p2w_putchar
  96. #define puts        p2w_puts
  97.  
  98. // ==== Std C library replacement routines
  99.  
  100. int p2w_fflush(FILE *stream);
  101. int p2w_fprintf(FILE *stream, const char *format, ...);
  102. int p2w_fputc(int theChar, FILE *stream);
  103. int p2w_fputs(const char *theString, FILE *stream);
  104. int p2w_printf(const char * format, ...);
  105. int p2w_putc(int theChar, FILE *stream);
  106. int p2w_putchar(const char theChar);
  107. int p2w_puts(const char *theString);
  108.  
  109.  
  110. #endif // STDIOP2W_H
  111.